/* 
 * File:   tempctr.h
 * Author: apleilx
 */

#ifndef TEMPCTRLIB_H_
#define	TEMPCTRLIB_H_

#include <stdint.h>
#include "pid.h"

#ifdef	__cplusplus
extern "C" {
#endif

typedef enum
{
    TEMP_HEAT_FULL,
    TEMP_HEAT_STOP,
    TEMP_COOL,
    TEMP_HEAT,
    TEMP_AUTO,
} TEMP_CTR_STEP_Type;

typedef struct
{
    TEMP_CTR_STEP_Type  TempCtrStep;
	uint8_t AutoBackCnt;
    int16_t TempCur;
    int16_t TempLast;
    int16_t TempLastForDir;
    int16_t TempSet;
    int16_t TempOffsetCoolEn;
    int16_t TempOffsetCoolDis;
    int16_t TempOffsetHeatClose;
    int16_t TempMax;
    int16_t TempMin;
    uint8_t bTempDir;
    uint8_t bCoolReq;
    uint16_t HeatOut; 
	PID_Type* pid;
} TEMP_CTR_PAR_Type;

#define TEMP_AUTO_BACK_MAX  3
#define TEMP_DIR_UP         1
#define TEMP_DIR_DOWN       0

void TempCtrAutoCool(TEMP_CTR_PAR_Type *TempCtrPar);    //启停式控制程序

//外部函数
void TempPidRun(TEMP_CTR_PAR_Type *TempCtrPar);       

#ifdef	__cplusplus
}
#endif



#endif	/* TEMPCTRLIB_H_ */

